package com.tobestronger.shouxiespringframework.beans.factory;

import com.tobestronger.shouxiespringframework.beans.BeansException;
import com.tobestronger.shouxiespringframework.beans.factory.config.AutowireCapableBeanFactory;
import com.tobestronger.shouxiespringframework.beans.factory.config.BeanDefinition;
import com.tobestronger.shouxiespringframework.beans.factory.config.ConfigurableBeanFactory;

public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    /**
     * 获取 beanName 对应的 BeanDefinition
     * @param beanName
     * @return
     * @throws BeansException
     */
    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;

}
